#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit adwr=P3^6;
sbit adrd=P3^7;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x7c,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
void delay(uint ms)
{
 uint i,j;
 for(i=0;i<=ms;i++)
    for(j=0;j<=ms;j++);
}
void display(uchar bai,uchar shi,uchar ge)
{
   dula=1;
   P0=table[bai];
   dula=0;
   wela=1;
   P0=0xff;
   wela=1;
   P0=0x7e;
   wela=0;
   delay(5);

   dula=1;
   P0=table[shi];
   dula=0;
   wela=1;
   P0=0xff;
   wela=1;
   P0=0x7d;
   wela=0;
   delay(5);

   dula=1;
   P0=table[ge];
   dula=0;
   wela=1;
   P0=0xff;
   wela=1;
   P0=0x7b;
   wela=0;
   delay(5);
}

void main()
{
 uchar a,a1,a2,a3,adval;
 wela=1;
 P0=0x7f;
 wela=0;
 while(1)
  {
      adwr=1;
	  _nop_();
	  adwr=0;
	  _nop_();
	  adwr=1;
  for(a=10;a>0;a--)
      {
	   display(a1,a2,a3);
	  }
	  P1=0xff;
	  adrd=1;
	  _nop_();
	  adrd=0;
	  _nop_();
	  adval=P1;
	  adrd=1;
	  a1=adval/100;
	  a2=adval%100/10;
	  a3=adval%10;
  }
}		   